<?php
        //Control el desborde de memoria 
        ini_set('memory_limit', '-1');
        //Exportar a Excel desde Consulta Sql
        include '../../../controlador/php/conexion/Conexion.php';
        $con = new Conexion();
       // $conexion = mssql_connect('TITAN\pruebas','sa','admin5','planillaUsuario');
	$consulta = "SELECT PACNUMDOC,PACPRINOM,PACSEGNOM,PACPRIAPE,PACSEGAPE,FECHA_RECEPCION,FECHA_VENCIMIENTO,pramedico,pracup1,pracodser1,praproce1,pracup2,pracodser2,praproce2,pracup3,pracodser3,praproce3,pracup4,pracodser4,praproce4,Expr1,Expr2,Expr3,pracup6,pracodser6,praobs,sexo,tipo_Paciente,GPAFECNAC,Expr4,Tipo_Afiliacion,GDENOMBRE,estado,GASNOMBRE,GEEDESCRI  FROM RQX where PACNUMDOC IS NOT NULL";
        $resultado = $con->query($consulta);
	//Se definie Zona Horaria para el manejo de tiempo en el plugins
        date_default_timezone_set('America/Mexico_City');
	if (PHP_SAPI == 'cli'){
	     die('Este archivo solo se puede ver desde un navegador web');
        }
	/** Se agrega la libreria PHPExcel */
	require_once 'lib/PHPExcel/PHPExcel.php';
        // Se crea el objeto PHPExcel
	$objPHPExcel = new PHPExcel();
	// Se asignan las propiedades del libro
	$objPHPExcel->getProperties()->setCreator("Codedrinks") //Autor
	//->setLastModifiedBy("Codedrinks") //Ultimo usuario que lo modificó
	->setTitle("Reporte de Quirofano")
	->setSubject("Reporte Paciente Qx")
	->setDescription("Reporte de Pacientes")
	->setKeywords("Reporte de Pacientes")
	->setCategory("Reporte excel");	
        //Define Titulo del reporte
        $tituloReporte = "Paciente de Quirofano";
        //Ubicacion para las columnas de excel
	$titulosColumnas = array('DOCUMENTO', 'PRIMER NOMBRE', 'SEGUNDO NOMBRE', 'PRIMER APELLIDO','SEGUNDO APELLIDO','FECHA RECEPCION','FECHA VENCIMIENTO','MEDICO CIRUJANO','CODIGO CUP 1','CODIGO SERVICIO 1','PROCEDIMIENTO 1','CODIGO CUP 2','CODIGO SERVICIO 2','PROCEDIMIENTO 2','CODIGO CUP 3','CODIGO SERVICIO 3','PROCEDIMIENTO 3','CODIGO CUP 4','CODIGO SERVICIO 4','PROCEDIMIENTO 4','CODIGO CUP5','CODIGO SERVICIO 5','PROCEDIMIENTO 5','CODIGO CUP 6','CODIGO SERVICIO 6','PROCEDIMIENTO 6','OBSERVACIONES','SEXO','TIPO PACIENTE','FECHA NACIMIENTO','EDAD','TIPO AFILIACION','EPS','ESTADO','SERVICIO','ESPECIALIDAD');
	$objPHPExcel->setActiveSheetIndex(0)
        	    ->mergeCells('A1:AI1');			
		// Se agregan los titulos del reporte -- Mapeo de columnas del reporte 35
		$objPHPExcel->setActiveSheetIndex(0)
					->setCellValue('A1',$tituloReporte)
                                        ->setCellValue('A3',  $titulosColumnas[0])
                                        ->setCellValue('B3',  $titulosColumnas[1])
                                        ->setCellValue('C3',  $titulosColumnas[2])
                                        ->setCellValue('D3',  $titulosColumnas[3])
                                        ->setCellValue('E3',  $titulosColumnas[4])
                                        ->setCellValue('F3',  $titulosColumnas[5])
                                        ->setCellValue('G3',  $titulosColumnas[6])
                                        ->setCellValue('H3',  $titulosColumnas[7])
                                        ->setCellValue('I3',  $titulosColumnas[8])
                                        ->setCellValue('J3',  $titulosColumnas[9])
                                        ->setCellValue('K3',  $titulosColumnas[10])
                                        ->setCellValue('L3',  $titulosColumnas[11])
                                        ->setCellValue('M3',  $titulosColumnas[12])
                                        ->setCellValue('N3',  $titulosColumnas[13])
                                        ->setCellValue('O3',  $titulosColumnas[14])
                                        ->setCellValue('P3',  $titulosColumnas[15])
                                        ->setCellValue('Q3',  $titulosColumnas[16])
                                        ->setCellValue('R3',  $titulosColumnas[17])
                                        ->setCellValue('S3',  $titulosColumnas[18])
                                        ->setCellValue('T3',  $titulosColumnas[19])
                                        ->setCellValue('U3',  $titulosColumnas[20])
                                        ->setCellValue('V3',  $titulosColumnas[21])
                                        ->setCellValue('W3',  $titulosColumnas[22])
                                        ->setCellValue('X3',  $titulosColumnas[23])
                                        ->setCellValue('Y3',  $titulosColumnas[24])
                                        ->setCellValue('Z3',  $titulosColumnas[25])
                                        ->setCellValue('AA3',  $titulosColumnas[27])
                                        ->setCellValue('AB3',  $titulosColumnas[28])
                                        ->setCellValue('AC3',  $titulosColumnas[29])
                                        ->setCellValue('AD3',  $titulosColumnas[30])
                                        ->setCellValue('AE3',  $titulosColumnas[31])
                                        ->setCellValue('AF3',  $titulosColumnas[32])
                                        ->setCellValue('AG3',  $titulosColumnas[33])
                                        ->setCellValue('AH3',  $titulosColumnas[34])
                                        ->setCellValue('AI3',  $titulosColumnas[35]);

		$i = 4;//Bandera para el total de las columnas
		while ($fila = mssql_fetch_array($resultado)) {
			$objPHPExcel->setActiveSheetIndex(0)
        		    ->setCellValue('A'.$i, utf8_encode($fila['PACNUMDOC']))
		            ->setCellValue('B'.$i, utf8_encode($fila['PACPRINOM']))
        		    ->setCellValue('C'.$i, utf8_encode($fila['PACSEGNOM']))
                            ->setCellValue('D'.$i, utf8_encode($fila['PACPRIAPE']))
                            ->setCellValue('E'.$i, utf8_encode($fila['PACSEGAPE']))
                            ->setCellValue('F'.$i, utf8_encode($fila['FECHA_RECEPCION']))
		            ->setCellValue('G'.$i, utf8_encode($fila['FECHA_VENCIMIENTO']))
                            ->setCellValue('H'.$i, utf8_encode($fila['pramedico']))
        		    ->setCellValue('I'.$i, utf8_encode($fila['pracup1']))
                            ->setCellValue('J'.$i, utf8_encode($fila['pracodser1']))
                            ->setCellValue('K'.$i, utf8_encode($fila['praproce1']))
		            ->setCellValue('L'.$i, utf8_encode( $fila['pracup2']))
        		    ->setCellValue('M'.$i, utf8_encode($fila['pracodser2']))
                            ->setCellValue('N'.$i, utf8_encode($fila['praproce2']))
                            ->setCellValue('O'.$i, utf8_encode($fila['pracup3']))
                            ->setCellValue('P'.$i, utf8_encode( $fila['pracodser3']))
		            ->setCellValue('Q'.$i, utf8_encode( $fila['praproce3']))
        		    ->setCellValue('R'.$i, utf8_encode( $fila['pracup4']))
                            ->setCellValue('S'.$i, utf8_encode($fila['pracodser4']))
                            ->setCellValue('T'.$i, utf8_encode($fila['praproce4']))
		            ->setCellValue('U'.$i, utf8_encode($fila['Expr1']))
        		    ->setCellValue('V'.$i, utf8_encode($fila['Expr2']))
                            ->setCellValue('W'.$i, utf8_encode($fila['Expr3']))
                            ->setCellValue('X'.$i, utf8_encode($fila['pracup6']))
                            ->setCellValue('Y'.$i, utf8_encode($fila['pracodser6']))
		            ->setCellValue('Z'.$i, utf8_encode($fila['praobs']))
        		    ->setCellValue('AA'.$i, utf8_encode($fila['sexo']))
                            ->setCellValue('AB'.$i,utf8_encode($fila['tipo_Paciente']))
                            ->setCellValue('AC'.$i,utf8_encode($fila['GPAFECNAC']))
		            ->setCellValue('AD'.$i,utf8_encode($fila['Expr4']))
        		    ->setCellValue('AE'.$i,utf8_encode($fila['Tipo_Afiliacion']))
                            ->setCellValue('AF'.$i,utf8_encode($fila['GDENOMBRE']))
                            ->setCellValue('AG'.$i,utf8_encode($fila['estado']))
                            ->setCellValue('AH'.$i,utf8_encode($fila['GASNOMBRE']))
                            ->setCellValue('AI'.$i,utf8_encode($fila['GEEDESCRI']));
                            $i++;
		}
		//Para el titulo del reporte
		$estiloTituloReporte = array(
        	'font' => array(
	        	'name'      => 'Verdana',
    	        'bold'      => true,
        	    'arial'    => false,
                'strike'    => false,
               	'size' =>30,
	            	'color'     => array(
    	            	'rgb' => '050505'//letra
        	       	)
            ),
                    //fondo
	        'fill' => array(
				'type'	=> PHPExcel_Style_Fill::FILL_SOLID,
				'color'	=> array('argb' => 'FFFFFFF')
			),
            'borders' => array(
               	'allborders' => array(
                	'style' => PHPExcel_Style_Border::BORDER_NONE                    
               	)
            ), 
            'alignment' =>  array(
        			'horizontal' => PHPExcel_Style_Alignment::HORIZONTAL_CENTER,
        			'vertical'   => PHPExcel_Style_Alignment::VERTICAL_CENTER,
        			'rotation'   => 0,
        			'wrap'          => TRUE
    		)
        );
        //titulo de encabezados de columnas            
	$estiloTituloColumnas = array(
            'font' => array(
                'name'      => 'verdana',
                'bold'      => true,                          
                'color'     => array(
                    'rgb' => '050505'//Color de  letra
                )
            ),
            'fill' 	=> array(
				'type'		=> PHPExcel_Style_Fill::FILL_GRADIENT_LINEAR,
				'rotation'   => 90,
        		'startcolor' => array(
            		'rgb' => 'A9E2F3'// color de fondo de los encabezados de la tabla
        		),
        		'endcolor'   => array(
            		'argb' => 'A9E2F3'// si se póne otro color se forma un degradado
        		)
			),
            'borders' => array(
            	'top'     => array(
                    'style' => PHPExcel_Style_Border::BORDER_MEDIUM ,
                    'color' => array(
                        'rgb' => '000000'//bordes de las columnas
                    )
                ),
                'bottom'     => array(
                    'style' => PHPExcel_Style_Border::BORDER_MEDIUM ,
                    'color' => array(
                        'rgb' => '000000'//boton para las margenes
                    )
                )
            ),
			'alignment' =>  array(
        			'horizontal' => PHPExcel_Style_Alignment::HORIZONTAL_CENTER,
        			'vertical'   => PHPExcel_Style_Alignment::VERTICAL_CENTER,
        			'wrap'          => TRUE
    		));
			
		$estiloInformacion = new PHPExcel_Style();
		$estiloInformacion->applyFromArray(
			array(
           		'font' => array(
               	'name'      => 'verdana',               
               	'color'     => array(
                   	'rgb' => '000000'//color para degradado de celda principal
               	)
           	),
           	'fill' 	=> array(
				'type'		=> PHPExcel_Style_Fill::FILL_SOLID,
				'color'		=> array('argb' => 'FFFFFF')//color para el font
			),
           	'borders' => array(
               	'left'     => array(
                   	'style' => PHPExcel_Style_Border::BORDER_THIN ,
	                'color' => array(
    	            	'rgb' => '000000'//color para el fondo del 
                   	)
               	)             
           	)
        ));
		 
		$objPHPExcel->getActiveSheet()->getStyle('A1:AI1')->applyFromArray($estiloTituloReporte);
		$objPHPExcel->getActiveSheet()->getStyle('A3:AI3')->applyFromArray($estiloTituloColumnas);		
		$objPHPExcel->getActiveSheet()->setSharedStyle($estiloInformacion, "A4:AI".($i-1));
				
		for($i = 'A4'; $i <= 'AI4'; $i++){
			$objPHPExcel->setActiveSheetIndex(0)			
				->getColumnDimension($i)->setAutoSize(TRUE);
		}
			// Se asigna el nombre a la hoja
		$objPHPExcel->getActiveSheet()->setTitle('Quirofano');

		// Se activa la hoja para que sea la que se muestre cuando el archivo se abre
		$objPHPExcel->setActiveSheetIndex(0);
		// Inmovilizar paneles 
		//$objPHPExcel->getActiveSheet(0)->freezePane('A4');
		$objPHPExcel->getActiveSheet(0)->freezePaneByColumnAndRow(0,4);

		// Se manda el archivo al navegador web, con el nombre que se indica (Excel2007)
		header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
		header('Content-Disposition: attachment;filename="ReporteQuirofano.xls"');
		header('Cache-Control: max-age=0');

		$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
		$objWriter->save('php://output');
		exit;
		
	
?>